package tech.jdbc.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Create with Intellij IDEA
 *
 * @Author Q
 * @date 2021/11/26/14:03
 */
public class JdbcTemplate {

    /**
     * @param sql 带有参数的sql语句  ?
     * @param args 每个占位符?对应的值,一一对应
     * @return
     */
    //DML操作 - insert update delete
    public static int executeUpdate(String sql,Object... args){

        Connection conn = null;
        PreparedStatement pst = null;
        int count = 0;
        try{
            conn = JdbcUtil.getConnection();
            //变化的代码 - 关注点仍然是在sql语句
//            String sql = "";
            pst =  conn.prepareStatement(sql);

            //变化的代码
            //可能涉及到发送sql参数
            if(null!=args && args.length>0){
                //这条sql语句可能是没有占位符的!!!
                for (int i = 0; i < args.length; i++) {
                    pst.setObject(i+1,args[i]);
                }
            }
            count = pst.executeUpdate();
        }catch(SQLException e){
            //..
            e.printStackTrace();
        }finally{
            JdbcUtil.close(conn,pst);
        }
        return count;
    }
}
